[C] Criptografia por Inversão de bits
Publicado por Enzo de Brito Ferber 04/03/2006
[ Hits: 13.286 ]
Homepage: http://www.maximasonorizacao.com.br
Programa de criptografia simples que
usa o operador ~(complemento de 1).
O operador ~ faz o seguinte:
01000001 ~
10111110
Todos os bits 0 passam a ser 1, e
todos os 1 passam a ser 0. O
programa criptografa um arquivo
inteiro, não uma só palavra.
#include <stdio.h>
#include <stdlib.h>
char encode(char ch){
return(~ch);
}
int set(){
system("clear");
}
int abrirArquivo(char caminho[]){
FILE *arqEntrada;
FILE *arqSaida;
char *textoEntrada;
char *textoSaida;
char ch;
int i=2; //para poder ser usado para alocação dinamica
if((arqEntrada = fopen(caminho, "r")) == 0){
printf("Impossivel abrir o arquivo...\n");
printf("Pressione ENTER para continuar...\n");
__fpurge(stdin);
ch = getchar();
main();
exit(1);
}
if((arqSaida = fopen("texto_criptografado.txt", "w")) == 0){
printf("Impossivel abrir o arquivo...\n");
printf("Pressione ENTER para continuar...\n");
__fpurge(stdin);
ch = getchar();
main();
}
printf("Realizando criptografia...\n");
while(!feof(arqEntrada)){
if((textoEntrada = (char *)calloc(i, sizeof(char)))== 0){
printf("Memoria insuficiente...\n");
exit(1);
}
if((textoSaida = (char *)calloc(i, sizeof(char)))== 0){
printf("Memoria insuficiente...\n");
exit(1);
}
fscanf(arqEntrada, "%c", &textoEntrada[i-2]);
if(textoEntrada[i-2] == '{FONTE}') break;
textoSaida[i-2] = encode(textoEntrada[i-2]);
fprintf(arqSaida, "%c", textoSaida[i-2]);
i++;
}
printf("Criptografia do arquivo realizada com sucesso...\n\n\n");
fclose(arqEntrada);
fclose(arqSaida);
free(textoEntrada);
free(textoSaida);
system("cat texto_criptografado.txt");
__fpurge(stdin);
printf("\n\nPressione ENTER para continuar...");
ch = getchar();
}
int main(void){
char caminho[100];
LOOP:
set();
printf("\t\t* * * * * CRIPTOGRAFIA DE ARQUIVO * * * * *\n\n\n");
printf("Arquivo: ");
__fpurge(stdin);
scanf("%[^\n]", caminho);
abrirArquivo(caminho);
goto LOOP;
}
Faz um crash no Kernel do Linux
intdb - gerador de wordlist numerica
Criptografar um Arquivo de Texto por cifra de Transposição
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









